// components/scroll-view/index.js
Component({
  options: {
    multipleSlots: true
  },
  /**
   * 组件的属性列表
   */
  properties: {
    // 加载更多的阈值
    lowerThreshold: {
      type: Number,
      value: 100
    },
    // 加载更多是否加载中
    loading: {
      type: Boolean,
      value: false
    },
    // 下拉刷新是否加载中
    refreshLoading: {
      type: Boolean,
      value: false,
      observer(newValue, oldValue) {
        this.setData({
          showRefresh: newValue
        })
      }
    },
    listHeight:{   // scroll 的 height 设置
      type:Number,
      value:0,
      observer(newValue,oldValue){
        this.setData({
          slot_height:newValue
        })
      }
    },
    scrollBackTop:{
      type:Boolean,
      value:false,
    }

  },

  /**
   * 组件的初始数据
   */
  data: {
    // 显示下拉刷新的标志位
    showRefresh: false,
    // 主动触发刷新的标志位
    forceRefresh: false,
    // content内容的高度
    slot_height:Number
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /** 
     * 开始刷新，看是否有延时刷新
     */
    refreshStart(options) {
      if (options.setTimeout) {
        setTimeout(() => {
          this.refresh()
        }, options.setTimeout);
      } else {
        this.refresh()
      }
    },
    /** 
     * 取消下拉刷新 
     */
    refreshCancel() {
      this.setData({
        showRefresh: false
      })
    },
    /** 
     * 对外暴露出一个刷新事件
     */
    refresh() {
      // 刷新操作
      this.setData({
        showRefresh: true
      })
      this.triggerEvent('refresh')
    },
    /**
     * 在父页面调用，通过wxs事件监听，主动触发刷新
     */
    forechRefresh() {
      this.setData({
        forechRefresh: true
      })
      wx.nextTick(() => {
        this.setData({
          forceRefresh: false
        })
      })
    },
    /** 
     * 加载更多
     */
    loadmore() {
      this.triggerEvent('loadmore')
    }
  }
})